package com.jwt.demo;


import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

public class Demo1 {
    public static void main(String[] args) {

        long currentTimeMillis  = System.currentTimeMillis();
        Date date = new Date(currentTimeMillis);
        JwtBuilder builder= Jwts.builder()
                .setId("888")   //设置唯一编号
                .setSubject("小白")//设置主题  可以是JSON数据
                .setIssuedAt(new Date())//设置签发日期
                //.setExpiration(date)//用于设置过期时间 ，参数为Date类型数据
                .claim("roles","admin")
                .claim("company","itcast")
                .signWith(SignatureAlgorithm.HS256,"itcast");//设置签名 使用HS256算法，并设置SecretKey(字符串)
//构建 并返回一个字符串
        System.out.println(builder.compact());

        String compactJwt = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI4ODgiLCJzdWIiOiLlsI_nmb0iLCJpYXQiOjE2MDA3NzU4ODUsInJvbGVzIjoiYWRtaW4iLCJjb21wYW55IjoiaXRjYXN0In0.GFL9RUZTNZf7CkxR_medptvHvnliDXUGgbp5U2PVnH0";
        Claims claims = Jwts.parser().setSigningKey("itcast").parseClaimsJws(compactJwt).getBody();

        System.out.println(claims);
    }
}
